网络:HTTP_1 性能优化
HTTP/0.9
- 用来在网络之间传递 HTML 超文本的内容
- 请求流程
- 基于 TCP 协议,客户端根据 IP 地址,端口和服务器建立连接
- 发送 GET 请求行
- 服务器收到请求信息后,读取对应的 HTML 文件,将数据以 ASCII 字符流返回客户端
- HTML 文档传输完成后断开连接
- 特点
- 只有请求行
- 服务器没有返回头
- 返回文件以 ASCII 字符流传输
HTTP/1.0
- 浏览器展示内容
- HTML 文件,JavaScript,CSS,图片,音频,视频
- 需要支持多种类型文件下载
- 文件格式需要支持其他编码
- 请求头
- 告诉服务器期待返回的内容
- 文件类型
- 压缩方式
- 文件语言
- 文件编码
- 用户代理
- 响应头
- 状态码
- Cache 机制
// request header
accept: text/html
accept-encoding: gzip, deflate, br
accept-Charset: ISO-8859-1,utf-8
accept-language: zh-CN,zh
// response header
content-encoding: br
content-type: text/html; charset=UTF-8
HTTP/1.1
- 持久连接
- 同一个域名,默认允许同时建立 6 个 TCP 持久连接
- 存在队头阻塞
- HTTP 管线化
- 整批发送请求
- 服务器依然需要根据请求顺序来回复浏览器的请求
- 支持虚拟主机
- Host 字段:一台物理主机上绑定多个虚拟主机,每个虚拟主机都有自己的单独的域名,这些单独的域名都公用同一个 IP 地址,请求头中增加了 Host 字段,用来表示当前的域名地址,这样服务器就可以根据不同的 Host 值做不同的处理
- 对动态生成的内容支持
- Chunk transfer 机制
- 将数据分割成若干个任意大小的数据块
- 每个数据块发送时会附上上个数据块的长度
- 最后使用一个零长度的块作为发送数据完成的标志
- Chunk transfer 机制
- 客户端 Cookie
- 安全机制